﻿using System;
using System.Threading.Tasks;

namespace OpenCVDemo.IService
{
    public interface IOpenCVService
    {
        /// <summary>
        /// Hello EmguCV
        /// </summary>
        void Hello();

        /// <summary>
        /// 图像操作入门
        /// </summary>
        void BeginImage();

        /// <summary>
        /// 视频摄像图操作
        /// </summary>
        void VideoCapture();

        /// <summary>
        /// 实践应用1
        /// </summary>
        void PracticeCase1();

        /// <summary>
        /// 认识Mat与颜色空间
        /// </summary>
        void MatAndColor();

        /// <summary>
        /// 绘图函数，主要用于识别结果的标记
        /// </summary>
        void DrawFunction();

        /// <summary>
        /// 访问图像像素
        /// </summary>
        void ImagePixel();

        /// <summary>
        /// 图像运算
        /// </summary>
        void ImageOperation();

        /// <summary>
        /// 对比度与亮度调整，通道分离
        /// </summary>
        void ContrastBrightness();

        /// <summary>
        /// ROI与Mask掩码
        /// </summary>
        void ROIMask();

        /// <summary>
        /// 图像几何变换
        /// </summary>
        void ImageGeometricTransform();

        /// <summary>
        /// 图像滤波，用于图像预处理，去除噪声和使图像变得平滑
        /// </summary>
        void ImageFilter();

        /// <summary>
        /// 图像阈值化，用于图像分割
        /// </summary>
        void ImageThreshold();

        /// <summary>
        /// 图像膨胀与腐蚀
        /// </summary>
        void DilateErode();

        /// <summary>
        /// 边缘检测
        /// </summary>
        void EdgeDetection();

        /// <summary>
        /// 霍夫变换，一种特征提取技术，主要用来检测直线或圆
        /// </summary>
        void HoughTransform();

        /// <summary>
        /// 直方图及应用
        /// </summary>
        void Hist();

        /// <summary>
        /// 模板匹配
        /// </summary>
        void MatchTemplate();

        /// <summary>
        /// 查找和绘制轮廓
        /// </summary>
        void FindDrawContours();

        /// <summary>
        /// 凸包，一般应用在物体识别，手势检测和边界检测
        /// </summary>
        void ConvexHull();

        /// <summary>
        /// 轮廓外接矩形
        /// </summary>
        void ContoursBoundingRectangle();

        /// <summary>
        /// 轮廓最小外接矩形
        /// </summary>
        void ContoursMinAreaRect();

        /// <summary>
        /// 轮廓最小外接圆
        /// </summary>
        void ContoursEnclosingCircle();

        /// <summary>
        /// 轮廓位置关系与轮廓匹配
        /// </summary>
        void ContoursPointPolygon();

        /// <summary>
        /// 滑块拼图验证码
        /// </summary>
        void SliderVerificationCode();

        /// <summary>
        /// 轮廓颜色识别
        /// </summary>
        void ContoursColorRecognition();

        /// <summary>
        /// 图像修补
        /// </summary>
        void ImageInPaint();

        /// <summary>
        /// GrabCut和FloodFill图像分割算法
        /// </summary>
        void GrabCutAndFloodFill();

        /// <summary>
        /// PaddleOCR入门
        /// </summary>
        void BeginPaddleOCR();

    }
}
